{{tag>Intrepid réseau internet courriel tutoriel BROUILLON}}

----

====== Comment envoyer l’adresse IP de sa box automatiquement par courriel (SMTP) en ligne de commande ? ======

> FIXME Merci d'utiliser le bouton « Aperçu » avant d'enregistrer, cf. « [[:wiki:participer_wiki#Les bonnes pratiques]] »

===== Envoyer un mail par SMTP en ligne de commande =====

==== Installation ====

[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt://msmtp|msmtp]]**.

Si vous aviez déjà installé des paquets désormais inutiles, un petit rappel sur [[:tutoriel:comment_supprimer_un_paquet|la suppression d'un paquet]].

==== Configuration ====

  * [[:tutoriel:comment_modifier_un_fichier|Créez et ouvrez le fichier]] **~/.msmtprc** (dans votre dossier personnel).

<note important>Ne pas utiliser de commande sudo. C'est bien l'utilisateur qui envoie les mails.</note>
<file>nano .msmtprc</file>
  account default
  host smtp.monfai.fr
  from prenom.nom@monfai.fr
  auth off
  #auth on
  #si jamais auth off ne passe pas
  user prenom.nom
  #si votre fai vous identifie plus clairement si vous reprécisez le domaine, alors plutôt cela :
  #user prenom.nom@fai.fr
  password monmotdepasse

  * Dissimuler ce fichier qui contient votre mot de passe en clair
<file>chmod 600 .msmtprc</file>

==== Utilisation ====
  * Pour envoyer le contenu d'un fichier texte comme message:
<file>cat readme.txt | msmtp johnny@liday.ch</file>
  * Pour envoyer un fichier binaire, ou compressé en pièce jointe :
<file>uuencode application.zip | msmtp johnny@liday.ch</file>
==== Vérification ====
  * Depuis votre client de messagerie, vérifiez que vous avez bien reçu le message attendu



===== Envoyer l'IP de sa box automatiquement =====

==== Installation ====

S'il vous manque GET [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt://GET|GET]]**

==== Récupérer l'IP externe de sa box ====

<file>GET whatismyip.org</file>
  * Cette commande renvoie des erreurs une fois sur deux, donc on va la lancer 2 ou 3 fois dans un script et récupérer l'IP dans un fichier.
<file>nano getip</file>
  GET whatismyip.org > .myip
  echo "" >> .myip
  sleep 1
  GET whatismyip.org >> .myip
  echo "" >> .myip
  sleep 1
  GET whatismyip.org >> .myip
  echo "" >> .myip
<file>sh getip</file>
<file>cat .myip</file>
  92.122.18.135
  92.122.18.135
  92.122.18.135

==== Envoyer son IP de box à son courriel au bureau ====

  * On a vu cela juste avant :

<file>cat .myip | msmtp johnny@whitehouse.gov</file>

==== Automatiser l'envoi de son IP de box vers le bureau ====

  * [[:tutoriel:comment_modifier_un_fichier|Modifier le fichier]] getip pour qu'il intègre la commande msmtp à la dernière ligne:
<file>nano getip</file>
  ...
  cat .myip | msmtp johnny@whitehouse.gov

  * Rendre le script exécutable :
<file>chmod 700 getip</file>

=== Utilisation ===

  * Lancer le script
<file>sh getip</file>

=== Vérification ===

  * Depuis votre client de messagerie, vérifiez que vous avez bien reçu le message attendu, soit 3 lignes avec l'adresse IP de la maison blanche ... si c'est là que votre box est branchée.


===== Programmation de l'envoi automatique =====

==== Par la crontab ====

Le système [[..\cron|crontab]] intégré à unix/linux permet une programmation simple de l'exécution de commandes et scripts.

=== Modification de la crontab ===

  * Si la crontab de l'utilisateur existe, on la redirige vers un fichier
<file>crontab -l > cron</file>
<note important>On évite systématiquement l'édition par la commande crontab -e, parce que la perte de 50 lignes de programmation sur un serveur de production, ça fait toujours chaud aux oreilles !</note>
  * Puis on [[:tutoriel:comment_editer_un_fichier|modifie/crée le fichier]] cron en y ajoutant notre ligne de programmation :
<file>nano cron</file>
  23 8,12,15,18 * * 1-5 /home/johnny/getip
  # à 08:23 12:23 15:23 et 18:23 tous les jours du lundi au vendredi
  # parce que les soirs et week-end je suis à la maison
  # et que c'est encore plus simple de récupérer mon IP

=== Injection des modifications de la crontab ===

  * Créer le fichier cron ne suffit pas, il faut encore l'injecter dans le système crontab :
<file>crontab cron</file>

== Vérification de la crontab ==

<file>crontab -l</file>
  ...
  23 8,12,15,18 * * 1-5 /home/johnny/getip
  ...

== Nettoyage ==

  * Pas de raison de laisser traîner son cron derrière soi, puisqu'on sait le recréer à volonté
<file>rm cron</file>

<note>
**Remarques :**
  * Si l'envoi répété de l'IP sature votre boîte de courriel, à vous de modifier la programmation
  * la configuration de msmtp peut être beaucoup plus pointue, //man// et //documentation// peuvent vous aider, en particulier pour des messageries demandant une authentification [[http://fr.wikipedia.org/wiki/Transport_Layer_Security|TLS]] comme [[http://mail.google.com|gmail]] ...
</note>

===== Références =====

  * [[:cron|Crontab]]
  * Le site officiel de msmtp : [[http://msmtp.sourceforge.net/]]


